In a communication system, when there is a difference between number of data intended for transmission and number of data for actual transmission over a physical channel, a transmission side performs rate matching, thus matching the number of data intended for transmission with the number of data for actual transmission over the physical channel. That is, when the number of data intended for transmission is more than the number of data for actual transmission over the physical channel, the rate matching is performed by puncturing part of the data intended for transmission, thus decreasing the number of data intended for transmission. When the number of data intended for transmission is less than the number of data for actual transmission over the physical channel, the rate matching is performed by repeating part of the data intended for transmission, thus increasing the number of data intended for transmission. By doing so, the numbers of data can be matched with each other.
Thus, upon receiving the rate-matched data, a reception side of the communication system performs rate dematching to recover number of the data to the original. The rate dematching means inserting ‘0’ into a punctured data position or compressing repeated data.
In general, a conventional communication system is constructed as in FIG. 1 and, upon rate dematching, operates in a ‘0’ insertion mode for data punctured by a transmission side and operates in a compression mode for data repeated by the transmission side. The punctured data can be divided into a puncture and a puncture general. The puncture is data not input to a reception side because being punctured at a time the transmission side performs puncture. The puncture general is data input to the reception side because of not being punctured at a time the transmission side performs puncture. Also, the repeated data can be divided into a repetition first write, a repetition last write, and a repetition general. The repetition first write represents first input data among data repeated due to the execution of repetition of the transmission side. The repetition last write represents last input data among the repeated data. The repetition general represents data received to the reception side with no repetition.
FIG. 1 is a block diagram illustrating a construction of an apparatus for rate dematching in a communication system according to the conventional art.
Referring to FIG. 1, an error generator 101 sets an error initial value, adds an error offset to a previous error, and calculates a current error. The error offset is decided depending on the determination result of a previous error of a puncture/repetition determiner 103 as shown in FIG. 2.
The puncture/repetition determiner 103 determines the type of data corresponding to a previous error on the basis of the determination result on the previous error and a value of a current error (e) calculated by the error generator 101 with reference to FIG. 3.
An input buffer read position generator 105 designates an address to read data from an input buffer 111, that is, a read position using the determination result of the puncture/repetition determiner 103. The input buffer read position generator 105 sets a read position initial value of the input buffer 111 by ‘0’. The input buffer read position generator 105 adds ‘0’ or ‘1’ to a previous read position depending on the determination result of the puncture/repetition determiner 103 and generates a read position to read current data.
An output buffer write position generator 107 designates an address to write data in the output buffer 113, that is, a write position using the determination result of the puncture/repetition determiner 103. The output buffer write position generator 107 sets a write position initial value of the output buffer 113 by ‘0’. The output buffer write position generator 107 adds ‘0’ or ‘1’ to a previous write position depending on the determination result of the puncture/repetition determiner 103 and generates a write position to write current data.
An output selector 109 calculates a value of a combination of previous input data and current input data. After that, the output selector 109 outputs input data as it is, outputs ‘0’, or outputs the calculated data value, depending on the determination result of the puncture/repetition determiner 103.
FIGS. 4 and 5 show a series of procedures for coding and decoding of a High-Speed Downlink Shared CHannel (HS-DSCH).
Referring to FIG. 4, a transmission side performs channel encoding 401, separates 403 information bits from parity bits, and performs rate matching 405, 407, and 409. Then, the transmission side gathers the information bits and parity bits through bit gathering 411, separates 413 the gathered bits by physical channel, performs HS-DSCH interleaving 415, performs constellation rearrangement 417 for data to be modulated into 16-Quadrature Amplitude (16QAM), and performs physical channel mapping 419 for transmission to a reception side. The procedure is performed for one subframe. The one subframe is transmitted over three slots.
Referring to FIG. 5, a reception side recovers 501 a 16QAM constellation rearrangement, completes HS-DSCH deinterleaving 503 by physical channel, performs bit separation 505, and stores bit separation data in a secondary rate dematching input buffer 507. If data of one subframe corresponding to the three slots are all stored in the secondary rate dematching input buffer 507, operations 509, 511, and 513 for secondary rate dematching are implemented. That is, as shown in FIG. 6, after data of one subframe are received over three slots, the reception side performs constellation rearrangement, HS-DSCH deinterleaving, and bit separation for the whole subframe and then, upon completion of the operations, performs an operation for rate-dematching.
As described above, a conventional rate dematching method has a problem that a delay time until before rate dematching is long because a reception side performs the rate dematching after data to be dematched are all received and deinterleaved.
Also, the conventional rate dematching method has a problem that the reception side inevitably requires an input buffer for storing the deinterleaved data and the use of the input buffer requires a clock for writing data in the input buffer and a clock for again reading the data from the input buffer, thus consuming double time compared to a non-storage method.
Lastly, the conventional rate dematching method has a problem that, when there is high-speed data transmission, number of data to be rate-dematched increases and therefore, the deinterleaving process consumes a longer time and a delay time gets longer, thus increasing a size of the input buffer.